import { JSEncrypt } from 'jsencrypt'

/**
 * RSA加密工具函数
 * 功能：使用RSA公钥对明文进行加密
 */

/**
 * 使用RSA公钥加密字符串
 * @param {string} plain - 需要加密的明文
 * @param {string} publicKey - RSA公钥
 * @returns {string} 加密后的密文
 * @throws {Error} 当加密失败时抛出错误
 */
function encryptWithRSA(plain: string, publicKey: string) {
    const enc = new JSEncrypt() // 创建JSEncrypt实例
    enc.setPublicKey(publicKey) // 设置公钥
    const cipher = enc.encrypt(plain) // 执行加密
    if (!cipher) throw new Error('RSA 加密失败') // 检查加密结果
    return cipher // 返回加密后的密文
}

export default encryptWithRSA